package br.com.sistema.vendas.Bean;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
import javax.faces.context.FacesContext;

import br.com.sistema.vendas.controller.ClienteRN;
import br.com.sistema.visao.Cliente;

@ManagedBean(name="clienteBean")
@RequestScoped
public class ClienteBean {
	
	Cliente clienteSelecionado = new Cliente();
	//Telefone telefoneSelecionado = new Telefone();
	List<Cliente> lista = null;
	List<Cliente> listaCliente  = new ArrayList<Cliente>();
	

	public List<Cliente> getListar() {
		ClienteRN clienteRN = new ClienteRN();
		if(lista == null){	
			lista = clienteRN.listar();
		}
		return lista;
	}

//	public Telefone getTelefoneSelecionado() {
//		return telefoneSelecionado;
//	}
//
//	public void setTelefoneSelecionado(Telefone telefoneSelecionado) {
//		this.telefoneSelecionado = telefoneSelecionado;
//	}

	public void Salvar(){
		
		ClienteRN clienteRN = new ClienteRN();
		clienteRN.salvar(clienteSelecionado);
		clienteSelecionado.setData(new Date());
		FacesMessage faces;
		if(clienteSelecionado.getCodigoCliente()!=null && clienteSelecionado.getCodigoCliente()!=0)
		{
			clienteRN.alterar(clienteSelecionado);
			faces = new FacesMessage("Cliente alterado com sucesso!");
		}else{
		    faces = new FacesMessage("Cliente salvo com sucesso!");
		FacesContext contexto = FacesContext.getCurrentInstance();
		contexto.addMessage(null, faces);
		}
		this.lista = null;
		this.Limpar();
	}
	public void Limpar(){	
		this.clienteSelecionado = new Cliente();
	}
	//Excluir um cliente da lista.
	public void excluir(){
		ClienteRN clienteRN = new ClienteRN();
		clienteRN.excluir(clienteSelecionado);
		this.lista = null;
		this.clienteSelecionado = new Cliente();
	}
	
	public void pesquisar(){
		ClienteRN clienteRN = new  ClienteRN();
		clienteRN.pesquisar(clienteSelecionado.getNome());
	
	}
	public void pesquisarPorCodigo(){
		ClienteRN clienteRN = new ClienteRN();
		clienteRN.pesquisarPorCodigo(clienteSelecionado.getCodigoCliente());
	}
    public String pesquisarPorNome(){
		 ClienteRN clienteRN = new ClienteRN();
		 Cliente clientePesquisado = new Cliente();
		
	if(this.clienteSelecionado.getNome()!= null && !this.clienteSelecionado.getNome().equals(""))
		{
			clientePesquisado = clienteRN.pesquisar(clienteSelecionado.getNome());	
			if(clientePesquisado != null){
               this.listaCliente.add(clientePesquisado);				
				
			}
		}
		return null;
	}
					
	public Cliente getClienteSelecionado() {
		return clienteSelecionado;
	}

	public void setClienteSelecionado(Cliente clienteSelecionado) {
		this.clienteSelecionado = clienteSelecionado;
	}
	public List<Cliente> getListaCliente() {
		return listaCliente;
	}

	public void setListaCliente(List<Cliente> listaCliente) {
		this.listaCliente = listaCliente;
	}

}
